package com.ruoyi.aero.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 任务信息对象 aero_task_info
 * 
 * @author swb
 * @date 2024-06-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class TaskInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 任务id */
    private String taskId;

    /** 任务名称 */
    @Excel(name = "任务名称")
    private String taskName;

    /** 所属计划id */
    @Excel(name = "所属计划id")
    private String planId;

    /** 任务优先级 */
    @Excel(name = "任务优先级")
    private Long taskPriority;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date endTime;

    /** 任务状态（0无归属，1未开始，2进行中，3已完成，4暂停，5废弃） */
    @Excel(name = "任务状态", readConverterExp = "0=无归属，1未开始，2进行中，3已完成，4暂停，5废弃")
    private String taskStatus;

    /** 任务规模（1车间级，2班组级） */
    @Excel(name = "任务规模", readConverterExp = "1=车间级，2班组级")
    private String taskScale;

    /** 产品id */
    @Excel(name = "产品id")
    private String productId;

    /** 任务预计产量 */
    @Excel(name = "任务预计产量")
    private Integer dueNum;

    /** 任务实际产量 */
    @Excel(name = "任务实际产量")
    private Integer actualNum;

    /** 所属车间id */
    @Excel(name = "所属车间id")
    private String workshopId;

    /** 所属班组id */
    @Excel(name = "所属班组id")
    private String groupId;

    /** 分数 */
    @Excel(name = "分数")
    private Integer score;

    /** 对应的计划信息 */
    private PlanInfo planInfo;

    /** 对应的负责人信息 */
    private StaffInfo staffInfo;

    /** 对应的产品信息 */
    private ProductInfo productInfo;

    /** 对应的车间信息 */
    private WorkshopInfo workshopInfo;

    /** 对应的班组信息 */
    private GroupInfo groupInfo;
}
